Safe Fine-Grained Locking for Aggregate Objects
نویسندگان
چکیده
Programmers have difficulty writing correct multithreaded code, not to mention code that scales well. One way to approach this problem is by offering a transaction construct, and leaving it to the compiler and run-time system to implement efficient synchronization. However, automatically generating efficient synchronization code is an open research problem. In this paper, rather than attempting to generate synchronization code automatically, we propose a programming methodology for explicit fine-grained locking of aggregate objects. We also propose a method for run-time checking, and a method for sound modular static verification of the safety of programs written according to the methodology. The system prevents deadlocks. The system is an extension of our methodology for safe concurrency for aggregate objects with invariants, which is in turn based on the Spec#/Boogie methodology for aggregate objects with invariants. This paper is a preliminary result of our investigation into programming methodologies for safe and efficient concurrency in object-oriented languages. Safe Fine-Grained Locking for Aggregate Objects Bart Jacobs Frank Piessens Wolfram Schulte Dept. CS, K.U.Leuven, Belgium {bartj,frank}@cs.kuleuven.be Microsoft Research, Redmond, USA [email protected]
منابع مشابه
Ultra-Fine Grained Dual-Phase Steels
This paper provides an overview on obtaining low-carbon ultra-fine grained dual-phase steels through rapid intercritical annealing of cold-rolled sheet as improved materials for automotive applications. A laboratory processing route was designed that involves cold-rolling of a tempered martensite structure followed by a second tempering step to produce a fine grained aggregate of ferrite and ca...
متن کاملA Basis for Verifying Multi-threaded Programs
Advanced multi-threaded programs apply concurrency concepts in sophisticated ways. For instance, they use fine-grained locking to increase parallelism and change locking orders dynamically when data structures are being reorganized. This paper presents a sound and modular verification methodology that can handle advanced concurrency patterns in multi-threaded, object-based programs. The methodo...
متن کاملFiner-grained Locking in Concurrent Dynamic Planar Convex Hulls
The convex hull of a planar point set is the smallest convex polygon containing each point in the set. The dynamic convex hull problem concerns efficiently maintaining the convex hull of a set of points subject to additions and removals. One algorithm for this problem uses two external balanced binary search trees (BSTs) [16]. We present the first concurrent solution for this problem, which use...
متن کاملAn Evaluation of Coarse-Grained Locking for Multicore Microkernels
The trade-off between coarseand fine-grained locking is a well understood issue in operating systems. Coarse-grained locking provides lower overhead under low contention, finegrained locking provides higher scalability under contention, though at the expense of implementation complexity and reduced best-case performance. We revisit this trade-off in the context of microkernels and tightly-coupl...
متن کاملCombining Lock Inference with Lock-Based Software Transactional Memory
An atomic block is a language construct that simplifies the programming of critical sections. In the past, software transactional memory (STM) and lock inference have been used to implement atomic blocks. Both approaches have strengths and weaknesses. STM provides fine-grained locking but has high overheads due to logging and potential rollbacks. Lock inference is a static analysis that compute...
متن کامل